package com.example.model.pojo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 学生工作报告实体类，对应数据库report表
 */
@Data
@Schema(name = "学生工作报告实体类", description = "学生提交的工作报告信息，对应数据库report表")
public class Report {
    @Schema(description = "报告ID，主键", required = true, example = "1")
    private Integer id;             // 报告ID，主键
    
    @Schema(description = "选题记录ID，外键关联student_selection表", required = true, example = "1")
    private Integer selectionId;    // 选题记录ID，外键关联student_selection表
    
    @Schema(description = "报告标题", required = true, example = "需求分析报告")
    private String title;           // 报告标题
    
    @Schema(description = "报告文件在服务器上的存储路径", required = true, example = "/uploads/reports/2023/09/01/report1.pdf")
    private String filePath;        // 报告文件存储路径
    
    @Schema(description = "报告文件名", required = true, example = "需求分析报告.pdf")
    private String fileName;        // 报告文件名
    
    @Schema(description = "报告阶段，如：需求分析、设计、实现、测试等", required = true, example = "需求分析")
    private String stage;           // 报告阶段，如：需求分析、设计、实现、测试等
    
    @Schema(description = "报告提交时间", required = true, example = "2023-09-01T15:30:00")
    private LocalDateTime submitTime;        // 提交时间
    
    @Schema(description = "提交人ID，外键关联user表", required = true, example = "1")
    private Integer submitBy;       // 提交人ID，外键关联user表
    
    @Schema(description = "教师对报告的评语", example = "报告内容详细，分析全面，继续加油！")
    private String comment;         // 教师评语
}